diff --git a/system/application/config/autoload.php b/system/application/config/autoload.php
index 1745d5c..e7c6f0d 100644
--- a/system/application/config/autoload.php
+++ b/system/application/config/autoload.php
@@ -20,10 +20,9 @@
 |
 | 1. Libraries
 | 2. Helper files
-| 3. Plugins
-| 4. Custom config files
-| 5. Language files
-| 6. Models
+| 3. Custom config files
+| 4. Language files
+| 5. Models
 |
 */
 
@@ -56,18 +55,6 @@
 
 /*
 | -------------------------------------------------------------------
-|  Auto-load Plugins
-| -------------------------------------------------------------------
-| Prototype:
-|
-|	$autoload['plugin'] = array('captcha', 'js_calendar');
-*/
-
-$autoload['plugin'] = array();
-
-
-/*
-| -------------------------------------------------------------------
 |  Auto-load Config files
 | -------------------------------------------------------------------
 | Prototype:
diff --git a/system/core/Loader.php b/system/core/Loader.php
index 1726f0a..976823f 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -41,7 +41,6 @@
 	var $_ci_loaded_files	= array();
 	var $_ci_models			= array();
 	var $_ci_helpers		= array();
-	var $_ci_plugins		= array();
 	var $_ci_varmap			= array('unit_test' => 'unit', 'user_agent' => 'agent');
 	
 
@@ -446,64 +445,6 @@
 	// --------------------------------------------------------------------
 	
 	/**
-	 * Load Plugin
-	 *
-	 * This function loads the specified plugin.
-	 *
-	 * @access	public
-	 * @param	array
-	 * @return	void
-	 */
-	function plugin($plugins = array())
-	{
-		foreach ($this->_ci_prep_filename($plugins, '_pi') as $plugin)
-		{	
-			if (isset($this->_ci_plugins[$plugin]))
-			{
-				continue;
-			}
-
-			if (file_exists(APPPATH.'plugins/'.$plugin.EXT))
-			{
-				include_once(APPPATH.'plugins/'.$plugin.EXT);	
-			}
-			else
-			{
-				if (file_exists(BASEPATH.'plugins/'.$plugin.EXT))
-				{
-					include_once(BASEPATH.'plugins/'.$plugin.EXT);	
-				}
-				else
-				{
-					show_error('Unable to load the requested file: plugins/'.$plugin.EXT);
-				}
-			}
-			
-			$this->_ci_plugins[$plugin] = TRUE;
-			log_message('debug', 'Plugin loaded: '.$plugin);
-		}		
-	}
-
-	// --------------------------------------------------------------------
-	
-	/**
-	 * Load Plugins
-	 *
-	 * This is simply an alias to the above function in case the
-	 * user has written the plural form of this function.
-	 *
-	 * @access	public
-	 * @param	array
-	 * @return	void
-	 */
-	function plugins($plugins = array())
-	{
-		$this->plugin($plugins);
-	}
-		
-	// --------------------------------------------------------------------
-	
-	/**
 	 * Loads a language file
 	 *
 	 * @access	public
@@ -987,7 +928,7 @@
 	 * Autoloader
 	 *
 	 * The config/autoload.php file contains an array that permits sub-systems,
-	 * libraries, plugins, and helpers to be loaded automatically.
+	 * libraries, and helpers to be loaded automatically.
 	 *
 	 * @access	private
 	 * @param	array
@@ -1012,8 +953,8 @@
 			}
 		}		
 
-		// Autoload plugins, helpers and languages
-		foreach (array('helper', 'plugin', 'language') as $type)
+		// Autoload helpers and languages
+		foreach (array('helper', 'language') as $type)
 		{			
 			if (isset($autoload[$type]) AND count($autoload[$type]) > 0)
 			{
@@ -1058,7 +999,7 @@
 	/**
 	 * Assign to Models
 	 *
-	 * Makes sure that anything loaded by the loader class (libraries, plugins, etc.)
+	 * Makes sure that anything loaded by the loader class (libraries, etc.)
 	 * will be available to models, if any exist.
 	 *
 	 * @access	private
diff --git a/system/plugins/index.html b/system/plugins/index.html
deleted file mode 100644
index c942a79..0000000
--- a/system/plugins/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-	<title>403 Forbidden</title>
-</head>
-<body>
-
-<p>Directory access is forbidden.</p>
-
-</body>
-</html>
\ No newline at end of file
